﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DAL;

namespace BLL
{
    public class EstadosAutoC
    {


        #region propiedades
        public int codigoEstado { get; set; }
        public string estadoAuto { get; set; }
        #endregion

        #region Variables_Privadas
        SqlConnection cnn;
        string mensaje_error;
        int numero_error;
        string sql;
        DataSet ds;
        #endregion


        #region Metodos

        public DataSet cargarEstadosAutos()
        {
            cnn = dal.TraeConexion("RentaCar", ref mensaje_error, ref numero_error);
            if (cnn == null)
            {
                // msg_error = mensaje_error;
                // num_error = numero_error;
                return null;
            }
            else
            {
                sql = "uspEstadoAutos";
                ParamStruct[] parametros = new ParamStruct[1];
                dal.AgregarDatosEstructuraParametros(ref parametros, 0, "@id", SqlDbType.Int, 0);

                ds = dal.EjecutaDataSet(cnn, sql, true, parametros, ref mensaje_error, ref numero_error);
                if (ds == null)
                {
                    //   msg_error = mensaje_error;
                    // num_error = numero_error;
                    return null;
                }
                else
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {

                        return ds;

                    }
                    else
                    {
                        return null;
                    }

                }
            }
        }
        public string insertarEstadosAutos()
        {
            cnn = dal.TraeConexion("RentaCar", ref mensaje_error, ref numero_error);
            if (cnn == null)
            {

                return "";
            }
            else
            {
                dal.Conectar(cnn, ref mensaje_error, ref numero_error);
                string sd = mensaje_error + "//" + numero_error + "?//?";
                sql = "uspEstadoAutos";
                ParamStruct[] parametros = new ParamStruct[2];


                dal.AgregarDatosEstructuraParametros(ref parametros, 0, "@id", SqlDbType.Int, 1);
                dal.AgregarDatosEstructuraParametros(ref parametros, 1, "@Estado_Auto", SqlDbType.NVarChar, estadoAuto);


                ds = dal.EjecutaDataSet(cnn, sql, true, parametros, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en tabla errores
                    sd = mensaje_error + "//" + numero_error + "?//?";
                    dal.Desconectar(cnn, ref mensaje_error, ref numero_error);

                    return sd;
                }

                return ds.Tables[0].Rows[0]["Msj"].ToString();
            }
        }
        public string actualizarEstadosAutos()
        {
            cnn = dal.TraeConexion("RentaCar", ref mensaje_error, ref numero_error);
            if (cnn == null)
            {

                return "";
            }
            else
            {
                dal.Conectar(cnn, ref mensaje_error, ref numero_error);
                string sd = mensaje_error + "//" + numero_error + "?//?";
                sql = "uspEstadoAutos";
                ParamStruct[] parametros = new ParamStruct[3];


                dal.AgregarDatosEstructuraParametros(ref parametros, 0, "@id", SqlDbType.Int, 2);
                dal.AgregarDatosEstructuraParametros(ref parametros, 1, "@Codigo_Estado", SqlDbType.Int, codigoEstado);
                dal.AgregarDatosEstructuraParametros(ref parametros, 2, "@Estado_Auto", SqlDbType.NVarChar, estadoAuto);

                ds = dal.EjecutaDataSet(cnn, sql, true, parametros, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en tabla errores
                    sd = mensaje_error + "//" + numero_error + "?//?";
                    dal.Desconectar(cnn, ref mensaje_error, ref numero_error);

                    return sd;
                }

                return ds.Tables[0].Rows[0]["Msj"].ToString();
            }
        }
        public DataSet editarEstadoAutos()
        {
            cnn = dal.TraeConexion("RentaCar", ref mensaje_error, ref numero_error);
            if (cnn == null)
            {
                // msg_error = mensaje_error;
                // num_error = numero_error;
                return null;
            }
            else
            {
                sql = "uspEstadoAutos";
                ParamStruct[] parametros = new ParamStruct[2];

                dal.AgregarDatosEstructuraParametros(ref parametros, 0, "@id", SqlDbType.Int, 4);
                dal.AgregarDatosEstructuraParametros(ref parametros, 1, "@Codigo_Estado", SqlDbType.Int, codigoEstado);


                ds = dal.EjecutaDataSet(cnn, sql, true, parametros, ref mensaje_error, ref numero_error);
                if (ds == null)
                {

                    return null;
                }
                else
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {

                        return ds;

                    }
                    else
                    {
                        return null;
                    }

                }
            }
        }
        public string eliminarEstadosAutos()
        {
            cnn = dal.TraeConexion("RentaCar", ref mensaje_error, ref numero_error);
            if (cnn == null)
            {

                return "";
            }
            else
            {
                dal.Conectar(cnn, ref mensaje_error, ref numero_error);
                string sd = mensaje_error + "//" + numero_error + "?//?";
                sql = "uspEstadoAutos";
                ParamStruct[] parametros = new ParamStruct[2];


                dal.AgregarDatosEstructuraParametros(ref parametros, 0, "@id", SqlDbType.Int, 3);
                dal.AgregarDatosEstructuraParametros(ref parametros, 1, "@Codigo_Estado", SqlDbType.Int, codigoEstado);



                ds = dal.EjecutaDataSet(cnn, sql, true, parametros, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en tabla errores
                    sd = mensaje_error + "//" + numero_error + "?//?";
                    dal.Desconectar(cnn, ref mensaje_error, ref numero_error);

                    return sd;
                }

                return ds.Tables[0].Rows[0]["Msj"].ToString();
            }
        }
        #endregion



    }


}

